//package nbcp
//
//import com.nbcp.TestBase
//import org.bson.types.ObjectId
//import org.junit.Test
//import nbcp.db.IdName
//import nbcp.base.comm.CorpCityInfo
//
//import nbcp.base.extend.FromJson
//import nbcp.base.extend.HasValue
//import nbcp.base.extend.*
//import nbcp.base.extend.match_in
//import nbcp.base.utils.MyUtil
//import nbcp.db.mongo.*
//import nbcp.db.mongo.entity.QRCodeInfo_CorpRecord
//import nbcp.db.mongo.entity.QRCodeInfo_UserRecord
//
//import nbcp.db.mongo.entity.QRCodeTagInfo
//import nbcp.db.mongo.entity.ProductInfo
//import nbcp.db.mongo.entity.SalerAllProductInfo
//import nbcp.db.mongo.entity.SysCity
//import nbcp.db.mongo.entity.JwdCorporationDefinition
//import nbcp.db.mongo.entity.SysUser
//import nbcp.db.mongo.repository.sys.JwdApprove
//import doRegiste
//import srv
//import java.net.IDN
//import java.util.function.Function
//import java.util.regex.Pattern
//
//
//class TestData : TestBase() {
//
//    var testUserName = "napa"
//
//    @Test
//    fun InitTestData() {
//        genUser()
//
//        approveUser();
//
//        genProduct()
//        genTag()
//        genCode()
//    }
//
//    @Test
//    fun approveUser() {
//        var users = mor.system.sysUser.query().toList();
//
//        users.forEach {
//            it.JwdApprove(CorpRoleEnum.Shop);
//        }
//
//    }
//
//
//    @Test
//    fun genUser() {
//        mor.system.sysUser.doRegiste("napa", "123", "纳帕红酒");
//
//        mor.system.sysUser.doRegiste("test1_bj", "123", "test1_北京");
//        mor.system.sysUser.doRegiste("test1_sh", "123", "test1_上海");
//        mor.system.sysUser.doRegiste("test1_cq", "123", "test1_重庆");
//
//        mor.system.sysUser.doRegiste("test2_bjhd", "123", "test2_北京海淀");
//        mor.system.sysUser.doRegiste("test2_bjcy", "123", "test2_北京朝阳");
//        mor.system.sysUser.doRegiste("test2_bjcp", "123", "test2_北京昌平");
//        mor.system.sysUser.doRegiste("test3_bjhd_1", "123", "test3_北京海淀第一");
//        mor.system.sysUser.doRegiste("test3_bjhd_2", "123", "test3_北京海淀第二");
//        mor.system.sysUser.doRegiste("test3_bjhd_3", "123", "test3_北京海淀第三");
//        mor.system.sysUser.doRegiste("test3_bjcy_1", "123", "test3_北京朝阳第一");
//        mor.system.sysUser.doRegiste("test3_bjcy_2", "123", "test3_北京朝阳第二");
//        mor.system.sysUser.doRegiste("test3_bjcy_3", "123", "test3_北京朝阳第三");
//        mor.system.sysUser.doRegiste("test3_bjcp_1", "123", "test3_北京昌平第一");
//        mor.system.sysUser.doRegiste("test3_bjcp_2", "123", "test3_北京昌平第二");
//        mor.system.sysUser.doRegiste("test3_bjcp_3", "123", "test3_北京昌平第三");
//
//        mor.system.sysUser.doRegiste("test2_shpd", "123", "test2_上海浦东");
//        mor.system.sysUser.doRegiste("test2_shpt", "123", "test2_上海普陀");
//        mor.system.sysUser.doRegiste("test2_shja", "123", "test2_上海静安");
//        mor.system.sysUser.doRegiste("test3_shpd_1", "123", "test3_上海浦东第一");
//        mor.system.sysUser.doRegiste("test3_shpd_2", "123", "test3_上海浦东第二");
//        mor.system.sysUser.doRegiste("test3_shpd_3", "123", "test3_上海浦东第三");
//        mor.system.sysUser.doRegiste("test3_shpt_1", "123", "test3_上海普陀第一");
//        mor.system.sysUser.doRegiste("test3_shpt_2", "123", "test3_上海普陀第二");
//        mor.system.sysUser.doRegiste("test3_shpt_3", "123", "test3_上海普陀第三");
//        mor.system.sysUser.doRegiste("test3_shja_1", "123", "test3_上海静安第一");
//        mor.system.sysUser.doRegiste("test3_shja_2", "123", "test3_上海静安第二");
//        mor.system.sysUser.doRegiste("test3_shja_3", "123", "test3_上海静安第三");
//
//
//        mor.system.sysUser.doRegiste("test2_cqfl", "123", "test2_重庆涪陵");
//        mor.system.sysUser.doRegiste("test2_cqjlp", "123", "test2_重庆九龙坡");
//        mor.system.sysUser.doRegiste("test2_cqwz", "123", "test2_重庆万州");
//        mor.system.sysUser.doRegiste("test3_cqfl_1", "123", "test3_重庆涪陵第一");
//        mor.system.sysUser.doRegiste("test3_cqfl_2", "123", "test3_重庆涪陵第二");
//        mor.system.sysUser.doRegiste("test3_cqfl_3", "123", "test3_重庆涪陵第三");
//        mor.system.sysUser.doRegiste("test3_cqjlp_1", "123", "test3_重庆九龙坡第一");
//        mor.system.sysUser.doRegiste("test3_cqjlp_2", "123", "test3_重庆九龙坡第二");
//        mor.system.sysUser.doRegiste("test3_cqjlp_3", "123", "test3_重庆九龙坡第三");
//        mor.system.sysUser.doRegiste("test3_cqwz_1", "123", "test3_重庆万州第一");
//        mor.system.sysUser.doRegiste("test3_cqwz_2", "123", "test3_重庆万州第二");
//        mor.system.sysUser.doRegiste("test3_cqwz_3", "123", "test3_重庆万州第三");
//    }
//
//
//    @Test
//    fun genProduct() {
//        var napa = mor.system.sysUser.findFirst("loginName" match testUserName)!!;
//        var users = mor.system.sysUser.query("loginName" match Pattern.compile("^test.*$", Pattern.CASE_INSENSITIVE)).toList()
//
//        var product = ProductInfo()
//        product.corp = IdName(napa.corp.id, napa.corp.name);
//        product.productStatus = ProductStatusEnum.Online;
//        product.validate = true;
//        product.name = "华为北手机"
//        product.type = "电子,手机"
//        mor.info.productInfo.insert(product);
//
//        product.id = ObjectId();
//        product.name = "小苹果手机"
//        mor.info.productInfo.insert(product);
//
//
//        var saleProduct = SalerAllProductInfo();
//        saleProduct.corp = IdName(napa.corp.id, napa.corp.name);
//        saleProduct.product = IdName(product.id, product.name);
//
//        mor.info.salerAllProductInfo.insert(saleProduct);
//
//        users.forEach {
//            saleProduct = SalerAllProductInfo();
//            saleProduct.corp = IdName(it.corp.id, it.corp.name);
//            saleProduct.product = IdName(product.id, product.name);
//
//            mor.info.salerAllProductInfo.insert(saleProduct);
//        }
//    }
//
//    @Test
//    fun genTag() {
//
//        var napa = mor.system.sysUser.findFirst("loginName" match testUserName)!!;
//        var users = mor.system.sysUser.query("loginName" match Pattern.compile("^test.*$", Pattern.CASE_INSENSITIVE)).toList()
//
//        users.add(napa);
//
//        var product = mor.info.productInfo.findFirst("name" match "小苹果手机", "corp._id" match napa.corp.id.toString())!!
//
//        users.forEach {
//            for (i in 0..4) {
//                var tag = QRCodeTagInfo()
//                tag.createBy = IdName(it.id, it.name);
//                tag.corp = IdName(it.corp.id, it.corp.name);
//                tag.product = IdName(product.id, product.name)
//
//                tag.tags = arrayOf(arrayOf("京东", "淘宝", "国美", "当当", "万达")[i])
//
//                mor.code.qrCodeTagInfo.insert(tag)
//            }
//        }
//    }
//
//    data class CorpCityInfoWithUser(var userId: String = "", var userName: String = "",
//                                    var corpId: String = "", var corpName: String = "",
//                                    var cityCode: Int = 0, var cityName: String = "") {}
//
//    fun getCorpEach(users: MutableList<SysUser>): Array<CorpCityInfoWithUser> {
//        var cs = users.filter { it.loginName.startsWith("test3_") };
//        var c3 = cs[srv.code.getRandomWithMaxValue(cs.size)]
//        var a = c3.loginName.split("_")[1];
//        var c2 = users.first { it.loginName == "test2_" + a };
//        var c1 = users.first { it.loginName == "test1_" + a.substring(0..1) }
//        return arrayOf(
//                CorpCityInfoWithUser(c1.id, c1.name, c1.corp.id, c1.corp.name, c1.corp.cityCode, c1.corp.cityName),
//                CorpCityInfoWithUser(c2.id, c2.name, c2.corp.id, c2.corp.name, c2.corp.cityCode, c2.corp.cityName),
//                CorpCityInfoWithUser(c3.id, c3.name, c3.corp.id, c3.corp.name, c3.corp.cityCode, c3.corp.cityName)
//        );
//    }
//
//    @Test
//    fun genCode() {
//        var napa = mor.system.sysUser.findFirst("loginName" match testUserName)!!;
//        var users = mor.system.sysUser.query("loginName" match Pattern.compile("^test.*$", Pattern.CASE_INSENSITIVE)).toList()
//
//        var c0 = CorpCityInfo(napa.corp.id, napa.corp.name, napa.corp.cityCode, napa.corp.cityName);
//
//        var product = mor.info.productInfo.findFirst("name" match "小苹果手机")!!;
//
//        for (i in 1..1000) {
//            var eachCorps = getCorpEach(users);
//            var c1 = eachCorps[0]
//            var c2 = eachCorps[1]
//            var c3 = eachCorps[2]
//
//
//            var code = srv.code.getRandomCode(1);
//
//            var qrCode = QRCodeInfo()
//            qrCode.code = code;
//            qrCode.corp = IdName(napa.corp.id, napa.corp.name);
//            qrCode.level = 1;
//            qrCode.product = IdName(product.id, product.name)
//
//
//            var corp0 = QRCodeInfo_CorpRecord(corp = c0)
//
//            var tag0 = getRandomTag(corp0.corp.id);
//            corp0.userRecords.add(QRCodeInfo_UserRecord(tag = TagData(tag0.id, tag0.tags), createBy = IdName(napa.id, napa.name)))
//
//
//            var corp1 = QRCodeInfo_CorpRecord(corp = CorpCityInfo(c1.corpId, c1.corpName, c1.cityCode, c1.cityName))
//            var tag1 = getRandomTag(corp1.corp.id);
//            corp1.userRecords.add(QRCodeInfo_UserRecord(tag = TagData(tag1.id, tag1.tags), createBy = IdName(c1.userId, c1.userName)))
//
//
//            var corp2 = QRCodeInfo_CorpRecord(corp = CorpCityInfo(c2.corpId, c2.corpName, c2.cityCode, c2.cityName))
//            var tag2 = getRandomTag(corp2.corp.id);
//            corp2.userRecords.add(QRCodeInfo_UserRecord(tag = TagData(tag2.id, tag2.tags), createBy = IdName(c2.userId, c2.userName)))
//
//
//            var corp3 = QRCodeInfo_CorpRecord(corp = CorpCityInfo(c3.corpId, c3.corpName, c3.cityCode, c3.cityName))
//            var tag3 = getRandomTag(corp3.corp.id);
//            corp3.userRecords.add(QRCodeInfo_UserRecord(tag = TagData(tag3.id, tag3.tags), createBy = IdName(c3.userId, c3.userName)))
//
//
//            qrCode.corpRecords.add(corp0)
//            qrCode.corpRecords.add(corp1)
//            qrCode.corpRecords.add(corp2)
//            qrCode.corpRecords.add(corp3)
//
//            mor.code.qrCodeInfo.insert(qrCode)
//        }
//    }
//
//    fun getRandomTag(corpId: String): QRCodeTagInfo {
//        var tag0_list = mor.code.qrCodeTagInfo.query(mor.code.qrCodeTagInfo.corp.id match corpId).toList();
//
//        return tag0_list[srv.code.getRandomWithMaxValue(tag0_list.size)];
//    }
//
//}
//
